package com.mongo.secret;

/**
 * 加解密顶级接口
 * @author xiazhun
 * @create 2022/9/20
 */
public interface Secret {

    /**
     * 加密
     * @param data 被加密内容
     * @return 加密后内容
     */
    default String encrypt(String data){
        return encrypt(data,null);
    }

    /**
     * 加密
     * @param data 被加密内容
     * @param key 秘钥
     * @return 加密后内容
     */
    String encrypt(String data, String key);


    /**
     * 解密
     * @param data 被解密内容
     * @return 解密后内容
     */
    default String decode(String data){
        return decode(data,null);
    }

    /**
     * 解密
     * @param data 被解密内容
     * @param key 秘钥
     * @return 解密后内容
     */
    String decode(String data, String key);
}
